import axios from "axios";
import { message } from "antd";
// 使用由库提供的配置的默认值来创建实例
// 此时超时配置的默认值是 `0`
var instance = axios.create();
// 覆写库的超时默认值
// 现在，在超时前，所有请求都会等待 2.5 秒
instance.defaults.timeout = 5000;
// 添加请求拦截器
axios.interceptors.request.use(
  function (config) {
    // 在发送请求之前做些什么
    return config;
  },
  function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
  }
);

// 添加响应拦截器
axios.interceptors.response.use(
  function (response) {
    // 状态码判断
    switch (response.data?.code) {
      case 301:
        message.error("暂时无权限");
        break;
      case 404:
        message.error("没有找到返回值");
        break;
      case 401:
        message.error("令牌暂时无权访问");
        break;
      case 501:
        message.error("服务器响应失败");
        break;
    }
    // 对响应数据做点什么
    return response.data;
  },
  function (error) {
    // 对响应错误做点什么
    return Promise.reject(error);
  }
);

export default axios;
